<html>
<head><meta charset="utf-8"><title>Remove PredicateKind in favor of only Bin… compiler-team#397 · t-compiler/major changes · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/index.html">t-compiler/major changes</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html">Remove PredicateKind in favor of only Bin… compiler-team#397</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="221557571"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221557571" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221557571">(Jan 04 2021 at 17:58)</a>:</h4>
<p>A new proposal has been announced: <a href="https://github.com/rust-lang/compiler-team/issues/397">Remove PredicateKind in favor of only Binder&lt;PredicateAtom&gt; #397</a>. It will be announced at the next meeting to try and draw attention to it, but usually MCPs are not discussed during triage meetings. If you think this would benefit from discussion amongst the team, consider proposing a design meeting.</p>



<a name="221557644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221557644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221557644">(Jan 04 2021 at 17:59)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> <span class="user-mention" data-user-id="116009">@nikomatsakis</span></p>



<a name="221558040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221558040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221558040">(Jan 04 2021 at 18:02)</a>:</h4>
<p><span aria-label="thumbs up" class="emoji emoji-1f44d" role="img" title="thumbs up">:thumbs_up:</span> i think this change is good but will leave it to <span class="user-mention" data-user-id="116009">@nikomatsakis</span> to second as I want him to also be informed here</p>



<a name="221558472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221558472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221558472">(Jan 04 2021 at 18:05)</a>:</h4>
<p>I can understand that. I don't know when he'll have time to be around/review.</p>



<a name="221770912"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221770912" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221770912">(Jan 06 2021 at 14:13)</a>:</h4>
<p>Heh, your concern is warranted :)</p>



<a name="221771326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221771326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221771326">(Jan 06 2021 at 14:17)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="492">@T-compiler</span>: Proposal <a href="https://github.com/rust-lang/compiler-team/issues/397#issuecomment-755323703">#397</a> has been seconded, and will be approved in 10 days if no objections are raised.</p>



<a name="221771344"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221771344" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221771344">(Jan 06 2021 at 14:17)</a>:</h4>
<p>I trust the two of you on this, and the change makes sense I think</p>



<a name="221771363"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221771363" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221771363">(Jan 06 2021 at 14:17)</a>:</h4>
<p>I skimmed the PR at least</p>



<a name="221824589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221824589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221824589">(Jan 06 2021 at 21:15)</a>:</h4>
<p>I updated based on your review</p>



<a name="221824611"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221824611" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221824611">(Jan 06 2021 at 21:15)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> can you review?</p>



<a name="221824690"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221824690" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221824690">(Jan 06 2021 at 21:16)</a>:</h4>
<p>Is this uncontroversial/small enough that we don't need to wait for the full 10 day FCP?</p>



<a name="221927841"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221927841" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221927841">(Jan 07 2021 at 10:52)</a>:</h4>
<p>hm, I would have just waited until the fcp is over</p>



<a name="221927861"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221927861" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221927861">(Jan 07 2021 at 10:53)</a>:</h4>
<p>yeah, intend to review that pr</p>



<a name="221955730"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221955730" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221955730">(Jan 07 2021 at 15:32)</a>:</h4>
<p>So, I'm making the changes for your review <span class="user-mention" data-user-id="216206">@lcnr</span>. But these end up being quite a heavy refactor in terms of code touched. So if these changes are uncontroversial and everybody is okay with it, I would prefer to try to land sooner rather than later to avoid bitrot.</p>



<a name="221958324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221958324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221958324">(Jan 07 2021 at 15:50)</a>:</h4>
<p>i have kinda complex feelings about this</p>



<a name="221958470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221958470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221958470">(Jan 07 2021 at 15:51)</a>:</h4>
<p>i also think that these changes are uncontroversial and don't expect any concerns here</p>



<a name="221958670"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221958670" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221958670">(Jan 07 2021 at 15:53)</a>:</h4>
<p>but there is value in having fairly strict rules for stuff like this which does get weakened by skipping the fcp for some mcps</p>



<a name="221958689"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221958689" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221958689">(Jan 07 2021 at 15:53)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397/near/221955730">said</a>:</p>
<blockquote>
<p>So, I'm making the changes for your review <span class="user-mention silent" data-user-id="216206">lcnr</span>. But these end up being quite a heavy refactor in terms of code touched. So if these changes are uncontroversial and everybody is okay with it, I would prefer to try to land sooner rather than later to avoid bitrot.</p>
</blockquote>
<p>I sympathise with this feeling, but I think the FCP process exists for a good reason, and it's not good to sidestep it.</p>



<a name="221958784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/221958784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#221958784">(Jan 07 2021 at 15:54)</a>:</h4>
<p>I think unfortunate changes have been made in the past because a process like this was skipped.</p>



<a name="222716016"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/222716016" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#222716016">(Jan 14 2021 at 13:26)</a>:</h4>
<p>@lcnr is <a href="https://github.com/rust-lang/rust/issues/80679">#80679</a> good other than FCP?</p>



<a name="222716143"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/222716143" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#222716143">(Jan 14 2021 at 13:27)</a>:</h4>
<p>still want to look at <a href="https://github.com/rust-lang/rust/pull/80679#discussion_r553482946">https://github.com/rust-lang/rust/pull/80679#discussion_r553482946</a></p>



<a name="222716234"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/222716234" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#222716234">(Jan 14 2021 at 13:28)</a>:</h4>
<p>will get to that this saturday probably</p>



<a name="222716262"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/222716262" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#222716262">(Jan 14 2021 at 13:28)</a>:</h4>
<p>apart from that yes</p>



<a name="223003884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223003884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223003884">(Jan 16 2021 at 20:17)</a>:</h4>
<p>When you get to this and decide if I need to remove that impl or not, I'll rebase.</p>



<a name="223010862"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223010862" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223010862">(Jan 16 2021 at 22:42)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> in case you missed ^</p>



<a name="223010903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223010903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223010903">(Jan 16 2021 at 22:42)</a>:</h4>
<p>i did <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="223010905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223010905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223010905">(Jan 16 2021 at 22:42)</a>:</h4>
<p>will look now</p>



<a name="223011775"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011775" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011775">(Jan 16 2021 at 23:01)</a>:</h4>
<p>ok wow, how does this not blow up completely rn</p>



<a name="223011818"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011818" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011818">(Jan 16 2021 at 23:02)</a>:</h4>
<p>do we test rust on big endian systems?</p>



<a name="223011869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011869">(Jan 16 2021 at 23:03)</a>:</h4>
<p>because if we did the current impl is incorrect or even unsound, wtf</p>



<a name="223011896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011896">(Jan 16 2021 at 23:03)</a>:</h4>
<p>We don't</p>



<a name="223011901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011901">(Jan 16 2021 at 23:03)</a>:</h4>
<p>Or at least not really</p>



<a name="223011916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011916">(Jan 16 2021 at 23:03)</a>:</h4>
<p>I think debian does and sometimes files reports</p>



<a name="223011972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011972">(Jan 16 2021 at 23:04)</a>:</h4>
<p>There's an issue open for s390x right now I think that's suspected as a big endian problem IIRC</p>



<a name="223011976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223011976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223011976">(Jan 16 2021 at 23:04)</a>:</h4>
<p>afaict decoding of types and predicates should be completely broken when using these systems</p>



<a name="223012000"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012000" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012000">(Jan 16 2021 at 23:05)</a>:</h4>
<p>and we just index into the void</p>



<a name="223012042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012042">(Jan 16 2021 at 23:06)</a>:</h4>
<p>because we try reading the i32 discriminant as a usize, see that it's greater than <code>128</code> and just decide that it isn't worth it anymore</p>



<a name="223012169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012169">(Jan 16 2021 at 23:09)</a>:</h4>
<p>or wait, we are saved because the default discriminant type is <code>isize</code></p>



<a name="223012171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012171">(Jan 16 2021 at 23:09)</a>:</h4>
<p>which is good</p>



<a name="223012319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012319">(Jan 16 2021 at 23:13)</a>:</h4>
<p><span class="user-mention" data-user-id="232957">@Jack Huey</span> <code>EncodableWithShorthand</code> for <code>Binder&lt;PredicateKind&gt;</code> is only correct because <code>Binder</code> doesn't actually hold any information</p>



<a name="223012368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012368">(Jan 16 2021 at 23:14)</a>:</h4>
<p>Okay, I'll just remove that impl then</p>



<a name="223012369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012369">(Jan 16 2021 at 23:14)</a>:</h4>
<p>so we just skip it during encoding and the discriminant of <code>PredicateKind</code> is still the first thing we actually write</p>



<a name="223012372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012372">(Jan 16 2021 at 23:15)</a>:</h4>
<p>Do we expect any perf change from that?</p>



<a name="223012378"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012378" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012378">(Jan 16 2021 at 23:15)</a>:</h4>
<p>yeah, probably</p>



<a name="223012382"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012382" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012382">(Jan 16 2021 at 23:15)</a>:</h4>
<p>Okay I'll also queue a perf run just to check</p>



<a name="223012385"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012385" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012385">(Jan 16 2021 at 23:15)</a>:</h4>
<p>Other than that, r=you?</p>



<a name="223012437"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012437" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012437">(Jan 16 2021 at 23:16)</a>:</h4>
<p>yeah, if perf isn't too bad</p>



<a name="223012442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012442">(Jan 16 2021 at 23:17)</a>:</h4>
<p>we probably do want to reenable this for any relevant enum</p>



<a name="223012445"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012445" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012445">(Jan 16 2021 at 23:17)</a>:</h4>
<p>So <code>PredicateKind</code>?</p>



<a name="223012451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012451">(Jan 16 2021 at 23:17)</a>:</h4>
<p>yeah, but that currently requires us to manually implement <code>Decode</code></p>



<a name="223012456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012456">(Jan 16 2021 at 23:17)</a>:</h4>
<p>which is probably annoying</p>



<a name="223012459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012459">(Jan 16 2021 at 23:18)</a>:</h4>
<p>I'm a little confused on exactly what <code>EncodableWithShortand</code> is supposed to do</p>



<a name="223012502"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012502" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012502">(Jan 16 2021 at 23:18)</a>:</h4>
<p>enums are decoded as <code>discr: isize | data ...</code></p>



<a name="223012522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012522">(Jan 16 2021 at 23:19)</a>:</h4>
<p>the biggest possible discriminant is really small</p>



<a name="223012570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012570">(Jan 16 2021 at 23:20)</a>:</h4>
<p>so we use the remaining <code>usize::MAX - max_discr</code> values to instead point back to a previous instance of the same value if it already exists</p>



<a name="223012577"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012577" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012577">(Jan 16 2021 at 23:20)</a>:</h4>
<p>ah I see</p>



<a name="223012581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012581">(Jan 16 2021 at 23:20)</a>:</h4>
<p>so we would have <code>whatever ...| discr_A | data | ... | position_of discr_A | ...</code></p>



<a name="223012649"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012649" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012649">(Jan 16 2021 at 23:22)</a>:</h4>
<p>I mean, there's also some overlap with the fact that predicates are interned, right?</p>



<a name="223012659"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012659" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012659">(Jan 16 2021 at 23:23)</a>:</h4>
<p>currently not</p>



<a name="223012664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012664">(Jan 16 2021 at 23:23)</a>:</h4>
<p>rn we just decode the same predicate everytime</p>



<a name="223012722"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012722" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012722">(Jan 16 2021 at 23:24)</a>:</h4>
<p>not sure if that matters though as decoding stuff is quite fast i think</p>



<a name="223012743"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012743" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012743">(Jan 16 2021 at 23:25)</a>:</h4>
<p>but, I guess we don't even have to go through these hoops though? Like, encoding <code>Predicate</code> will try to encode <code>&amp;'tcx PredicateInner</code></p>



<a name="223012790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012790">(Jan 16 2021 at 23:26)</a>:</h4>
<p>And that is essentially a <code>&amp;'tcx Binder&lt;PredicateKind&gt;</code></p>



<a name="223012797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012797">(Jan 16 2021 at 23:26)</a>:</h4>
<p>So two predicate kinds that are the same shouldn't be decoded as two separate <code>Predicate</code>s</p>



<a name="223012801"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012801" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012801">(Jan 16 2021 at 23:27)</a>:</h4>
<p>Unless I'm missing something</p>



<a name="223012865"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012865" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012865">(Jan 16 2021 at 23:28)</a>:</h4>
<p>(you probably still want to manually implement <code>Decode</code> for <code>Predicate</code> to directly encode <code>Binder&lt;PredicateKind&gt;</code> instead of <code>PredicateInner</code>)</p>



<a name="223012872"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012872" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012872">(Jan 16 2021 at 23:28)</a>:</h4>
<p>s/<code>Decode</code>/<code>Encode</code>?</p>



<a name="223012887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012887">(Jan 16 2021 at 23:29)</a>:</h4>
<p>both <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="223012895"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012895" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012895">(Jan 16 2021 at 23:29)</a>:</h4>
<p>I'm pretty sure that is already implemented</p>



<a name="223012911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012911">(Jan 16 2021 at 23:30)</a>:</h4>
<p>opened <a href="https://github.com/rust-lang/rust/issues/81100">#81100</a> to prevent ourselves from accidentally introducing the bug i was worried about</p>



<a name="223012940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012940">(Jan 16 2021 at 23:30)</a>:</h4>
<p>yeah, but it currently uses <code>encode_with_shorthand</code></p>



<a name="223012956"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012956" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012956">(Jan 16 2021 at 23:30)</a>:</h4>
<p>ah gotcha</p>



<a name="223012963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223012963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223012963">(Jan 16 2021 at 23:30)</a>:</h4>
<p>where we instead now always fully <code>Encode</code> and <code>Decode</code> the <code>Binder&lt;PredicateKind&gt;</code></p>



<a name="223013058"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013058" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013058">(Jan 16 2021 at 23:32)</a>:</h4>
<p>How much longer will you be around?</p>



<a name="223013082"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013082" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013082">(Jan 16 2021 at 23:33)</a>:</h4>
<p>not too much longer, probably less than an hour</p>



<a name="223013090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013090">(Jan 16 2021 at 23:33)</a>:</h4>
<p>I can get the rebase/change done and you can double check. Shouldn't take more than 15 mins</p>



<a name="223013180"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013180" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013180">(Jan 16 2021 at 23:35)</a>:</h4>
<p>still have to wait for the perf run in case it's bad</p>



<a name="223013240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013240">(Jan 16 2021 at 23:36)</a>:</h4>
<p>right, but assuming it's not, that's a simple <code>r=lcnr</code></p>



<a name="223013242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013242">(Jan 16 2021 at 23:36)</a>:</h4>
<p>i fear that this will have a noticeable impact on max-rss</p>



<a name="223013254"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013254" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013254">(Jan 16 2021 at 23:36)</a>:</h4>
<p>I'm not worried</p>



<a name="223013290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013290">(Jan 16 2021 at 23:38)</a>:</h4>
<p>precisely because we also store <code>PredicateKind</code>s as interned</p>



<a name="223013356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013356">(Jan 16 2021 at 23:39)</a>:</h4>
<p>but we don't encode them as such</p>



<a name="223013398"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013398" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013398">(Jan 16 2021 at 23:39)</a>:</h4>
<p>But it's simple to</p>



<a name="223013444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013444">(Jan 16 2021 at 23:40)</a>:</h4>
<p>is it?</p>



<a name="223013459"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013459" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013459">(Jan 16 2021 at 23:40)</a>:</h4>
<p>Yeah, I think so</p>



<a name="223013463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013463">(Jan 16 2021 at 23:40)</a>:</h4>
<p>I guess we'll see :)</p>



<a name="223013827"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013827" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013827">(Jan 16 2021 at 23:48)</a>:</h4>
<p>Wait, I might be a bit confused</p>



<a name="223013869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013869">(Jan 16 2021 at 23:49)</a>:</h4>
<p>So how does <code>DiscriminantKind</code> work when enums have data</p>



<a name="223013925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013925">(Jan 16 2021 at 23:50)</a>:</h4>
<p>the discriminant and the actual layout of an enum don't have to match</p>



<a name="223013936"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013936" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013936">(Jan 16 2021 at 23:51)</a>:</h4>
<p><code>DiscriminantKind</code> is always <code>isize</code> even if the size of the enum is smaller</p>



<a name="223013939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013939">(Jan 16 2021 at 23:51)</a>:</h4>
<p>unless you use an explicit <code>repr</code> attribute, in which case the size of the discriminant and the layout are the same</p>



<a name="223013942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013942">(Jan 16 2021 at 23:51)</a>:</h4>
<p>so for <code>Option&lt;&amp;Ty&gt;</code></p>



<a name="223013984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013984">(Jan 16 2021 at 23:52)</a>:</h4>
<p><code>discriminant_value(&amp;None)</code> is still 0 and <code>discriminant_value(&amp;Some(...))</code> is 1</p>



<a name="223013998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013998">(Jan 16 2021 at 23:52)</a>:</h4>
<p>even though the actual representation of that type doesn't actually store the <code>1</code> anywhere</p>



<a name="223013999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223013999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223013999">(Jan 16 2021 at 23:53)</a>:</h4>
<p>and just checks for <code>ptr != 0</code></p>



<a name="223014067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014067">(Jan 16 2021 at 23:55)</a>:</h4>
<p>ah, okay</p>



<a name="223014118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014118">(Jan 16 2021 at 23:56)</a>:</h4>
<p>So what exactly does is <code>DiscriminantKind</code> of a non-enum mean</p>



<a name="223014120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014120">(Jan 16 2021 at 23:56)</a>:</h4>
<p><span aria-label="shrug" class="emoji emoji-1f937" role="img" title="shrug">:shrug:</span></p>



<a name="223014122"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014122" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014122">(Jan 16 2021 at 23:56)</a>:</h4>
<p>it's pretty much meaningless</p>



<a name="223014129"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014129" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014129">(Jan 16 2021 at 23:57)</a>:</h4>
<p>so we just use 0u8</p>



<a name="223014134"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014134" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014134">(Jan 16 2021 at 23:57)</a>:</h4>
<p>because why not</p>



<a name="223014149"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014149" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014149">(Jan 16 2021 at 23:57)</a>:</h4>
<p>wanted to originally use <code>()</code> but eddy feared that we accidentally leak it into llvm which may interact badly with zero sized types</p>



<a name="223014171"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014171" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014171">(Jan 16 2021 at 23:58)</a>:</h4>
<p>for generators it's the current yield point</p>



<a name="223014193"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014193" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014193">(Jan 16 2021 at 23:58)</a>:</h4>
<p>or something like that</p>



<a name="223014200"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014200" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014200">(Jan 16 2021 at 23:58)</a>:</h4>
<p>and a <code>u32</code> i think</p>



<a name="223014340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014340">(Jan 17 2021 at 00:01)</a>:</h4>
<p>Ugh I'm trying to remember where I saw code for encoding/decoding interned data</p>



<a name="223014384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014384">(Jan 17 2021 at 00:02)</a>:</h4>
<p>can't you repurpose the current impls</p>



<a name="223014415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014415">(Jan 17 2021 at 00:03)</a>:</h4>
<p>not easily</p>



<a name="223014465"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014465" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014465">(Jan 17 2021 at 00:04)</a>:</h4>
<p>isn't encode <code>e.kind().encode(encoder)</code></p>



<a name="223014480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014480">(Jan 17 2021 at 00:04)</a>:</h4>
<p>well, yeah, we could just ignore interning</p>



<a name="223014487"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014487" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014487">(Jan 17 2021 at 00:05)</a>:</h4>
<p>and decode</p>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">decode</span><span class="p">(</span><span class="n">decoder</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="n">D</span><span class="p">)</span><span class="w"> </span>-&gt; <span class="nb">Result</span><span class="o">&lt;</span><span class="n">ty</span>::<span class="n">Predicate</span><span class="o">&lt;'</span><span class="na">tcx</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </span><span class="n">D</span>::<span class="n">Error</span><span class="o">&gt;</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">predicate_kind</span><span class="w"> </span><span class="o">=</span><span class="w">  </span><span class="n">ty</span>::<span class="n">PredicateKind</span>::<span class="n">decode</span><span class="p">(</span><span class="n">decoder</span><span class="p">)</span><span class="o">?</span><span class="p">;</span><span class="w"></span>
<span class="w">        </span><span class="kd">let</span><span class="w"> </span><span class="n">predicate</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">decoder</span><span class="p">.</span><span class="n">tcx</span><span class="p">().</span><span class="n">mk_predicate</span><span class="p">(</span><span class="n">predicate_kind</span><span class="p">);</span><span class="w"></span>
<span class="w">        </span><span class="nb">Ok</span><span class="p">(</span><span class="n">predicate</span><span class="p">)</span><span class="w"></span>
<span class="w">    </span><span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="223014499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014499">(Jan 17 2021 at 00:05)</a>:</h4>
<p>i still don't see how stuff being interned helps with encoding tbh <span aria-label="laughing" class="emoji emoji-1f606" role="img" title="laughing">:laughing:</span></p>



<a name="223014561"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014561" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014561">(Jan 17 2021 at 00:07)</a>:</h4>
<p>Hmm, maybe it's not helpful</p>



<a name="223014573"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014573" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014573">(Jan 17 2021 at 00:08)</a>:</h4>
<p>Let's keep it simple to start and if there are perf problems, I'll think</p>



<a name="223014716"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014716" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014716">(Jan 17 2021 at 00:11)</a>:</h4>
<p>also that decode isn't exactly right. Since we are decoding a <code>Binder&lt;PredicateKind&gt;</code></p>



<a name="223014768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014768">(Jan 17 2021 at 00:13)</a>:</h4>
<p>(and that's the bit that makes everything a bit more complicated)</p>



<a name="223014822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014822">(Jan 17 2021 at 00:14)</a>:</h4>
<p><code>Decode::decode(self.kind(), decoder)</code>?</p>



<a name="223014829"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014829" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014829">(Jan 17 2021 at 00:14)</a>:</h4>
<p>considering that <code>Binder</code> also implement decode</p>



<a name="223014843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014843">(Jan 17 2021 at 00:15)</a>:</h4>
<p>I went with <code>ty::Binder::&lt;ty::PredicateKind&lt;'tcx&gt;&gt;::decode(decoder)</code> but yours is cleaner</p>



<a name="223014917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014917">(Jan 17 2021 at 00:17)</a>:</h4>
<p><code>Decodable::decode(decoder)</code></p>



<a name="223014921"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014921" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014921">(Jan 17 2021 at 00:17)</a>:</h4>
<p>tru</p>



<a name="223014971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223014971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223014971">(Jan 17 2021 at 00:18)</a>:</h4>
<p>Ok, PR is updated</p>



<a name="223015026"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223015026" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223015026">(Jan 17 2021 at 00:20)</a>:</h4>
<p>think everything's looking good</p>



<a name="223015030"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223015030" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223015030">(Jan 17 2021 at 00:20)</a>:</h4>
<p>if perf and max-rss stays about the same r=me</p>



<a name="223031246"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223031246" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223031246">(Jan 17 2021 at 08:15)</a>:</h4>
<p>So looks like there indeed a perf/max-rss regression compared to previously.</p>



<a name="223031305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223031305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223031305">(Jan 17 2021 at 08:16)</a>:</h4>
<p>So...trying to think of a "fix"</p>



<a name="223031530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223031530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223031530">(Jan 17 2021 at 08:22)</a>:</h4>
<p>I think the right fix is to <em>not</em> automatically derive <code>TyEncodable</code>/<code>TyDecodable</code> for <code>Binder</code></p>



<a name="223053002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223053002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223053002">(Jan 17 2021 at 17:08)</a>:</h4>
<p>Okay, made some changes and they're in between now. Somewhat mixed, but acceptable I think. <span class="user-mention" data-user-id="216206">@lcnr</span> can you take a look when you get a chance?</p>



<a name="223053705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223053705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lcnr <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223053705">(Jan 17 2021 at 17:27)</a>:</h4>
<p><span aria-label="thumbs up" class="emoji emoji-1f44d" role="img" title="thumbs up">:thumbs_up:</span></p>



<a name="223053924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223053924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223053924">(Jan 17 2021 at 17:32)</a>:</h4>
<p><span class="user-mention" data-user-id="216206">@lcnr</span> done :)</p>



<a name="223270974"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/233931-t-compiler/major%20changes/topic/Remove%20PredicateKind%20in%20favor%20of%20only%20Bin%E2%80%A6%20compiler-team%23397/near/223270974" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> triagebot <a href="https://rust-lang.github.io/zulip_archive/stream/233931-t-compiler/major-changes/topic/Remove.20PredicateKind.20in.20favor.20of.20only.20Bin.E2.80.A6.20compiler-team.23397.html#223270974">(Jan 19 2021 at 18:31)</a>:</h4>
<p>This proposal has been accepted: <a href="https://github.com/rust-lang/compiler-team/issues/397">#397</a>.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>